package com.ruoyi.ldzlsb.mapper;

import java.util.List;
import com.ruoyi.ldzlsb.domain.SbMaintenanceRecord;

/**
 * 保养单Mapper接口
 *
 * @author anli
 * @date 2025-01-11
 */
public interface SbMaintenanceRecordMapper
{
    /**
     * 查询保养单
     *
     * @param recordId 保养单主键
     * @return 保养单
     */
    public SbMaintenanceRecord selectSbMaintenanceRecordByRecordId(Long recordId);

    /**
     * 查询保养单列表
     *
     * @param sbMaintenanceRecord 保养单
     * @return 保养单集合
     */
    public List<SbMaintenanceRecord> selectSbMaintenanceRecordList(SbMaintenanceRecord sbMaintenanceRecord);

    /**
     * 查询保养单列表（包含关联信息）
     *
     * @param sbMaintenanceRecord 保养单
     * @return 保养单集合
     */
    public List<SbMaintenanceRecord> selectSbMaintenanceRecordWithInfoList(SbMaintenanceRecord sbMaintenanceRecord);

    /**
     * 新增保养单
     *
     * @param sbMaintenanceRecord 保养单
     * @return 结果
     */
    public int insertSbMaintenanceRecord(SbMaintenanceRecord sbMaintenanceRecord);

    /**
     * 修改保养单
     *
     * @param sbMaintenanceRecord 保养单
     * @return 结果
     */
    public int updateSbMaintenanceRecord(SbMaintenanceRecord sbMaintenanceRecord);

    /**
     * 删除保养单
     *
     * @param recordId 保养单主键
     * @return 结果
     */
    public int deleteSbMaintenanceRecordByRecordId(Long recordId);

    /**
     * 批量删除保养单
     *
     * @param recordIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSbMaintenanceRecordByRecordIds(Long[] recordIds);

    /**
     * 根据保养单编号查询保养单
     *
     * @param recordCode 保养单编号
     * @return 保养单
     */
    public SbMaintenanceRecord selectSbMaintenanceRecordByRecordCode(String recordCode);

    /**
     * 根据保养计划ID查询保养单列表
     *
     * @param planId 保养计划ID
     * @return 保养单集合
     */
    public List<SbMaintenanceRecord> selectSbMaintenanceRecordByPlanId(Long planId);

    /**
     * 根据设备ID查询保养单列表
     *
     * @param equipmentId 设备ID
     * @return 保养单集合
     */
    public List<SbMaintenanceRecord> selectSbMaintenanceRecordByEquipmentId(Long equipmentId);

    /**
     * 根据保养人员ID查询保养单列表
     *
     * @param maintainerId 保养人员ID
     * @return 保养单集合
     */
    public List<SbMaintenanceRecord> selectSbMaintenanceRecordByMaintainerId(Long maintainerId);

    /**
     * 统计今日保养单数量
     *
     * @return 今日保养单数量
     */
    public int countTodayMaintenanceRecords();
} 